#include <stdio.h>

// n表示数组a的长度
int solve(int *a, int n, int k)
{
    //给定一串递增数列，找到其中两个不同的数字 a[i] 和 a[j]，使得a[i] + a[j] = k，并输出较小的那个数
    int i = 0, j = n - 1;
    while (i < j)
    {
        if (a[i] + a[j] == k)//如果正好相等，就输出小的数
        {
            return a[i];
        }
        else if (a[i] + a[j] > k)//如果和大于k，说明大的数太大了，要减小
        {
            j--;
        }
        else //相反，如果和小于k，说明小的数太小了，小的数要增大
        {
            i++;
        }
    }
    return -1;
}

int main()
{
    int a[] = {1, 2, 3, 4, 10};
    int n = 5, k = 14;
    int b = solve(a, n, k);
    printf("%d", b);
}